#ifndef _MISSING_CP_HPP
#define _MISSING_CP_HPP

#include "../messages/MacArrayMessage.hpp"
#include "../messages/Digest.hpp"
#include "../OrderParameters.hpp"

namespace BFT
{
	namespace order
	{
		namespace messages
		{
			class MissingCP : public BFT::messages::MacArrayMessage
			{
				public:
				MissingCP(uint32_t _seqNo, boost::shared_ptr<BFT::messages::Digest> _cpDig, uint32_t _sendingReplica);
				
				MissingCP(boost::shared_ptr<char> _bytes, int _bytes_size);
				
				static uint32_t computeSize();
				
				uint32_t getSeqNo(); //inlined
				
				boost::shared_ptr<BFT::messages::Digest> getCPDigest(); //inlined
				
				protected:
				
				uint32_t seqNo;
				
				boost::shared_ptr<BFT::messages::Digest> cpDigest;
			};
			
			inline boost::shared_ptr<BFT::messages::Digest>  MissingCP::getCPDigest() {return cpDigest;}
			inline uint32_t MissingCP::getSeqNo() {return seqNo;}
		}
	}
}

#endif
